package cn.lili.modules.order.order.entity.dto;

import cn.lili.common.utils.CurrencyUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 当前批次u提款金额
 * <p>
 * PS：订单里支付300元，每件100.假设分配三个角色：供应商、店铺、平台 每人1/3 则有一个人会分到33.34
 * 退款退一件，那么每个人当前批次扣款应该是11.11
 * 退第二件，每个人还是11.11
 * 退第三件时，分到33.34的人需要退11.12
 * <p>
 * 所以并不能直接等比计算退款金额，需要有一个兜底测略，确认当前订单付款100，退款也是100，而不是99.99.
 * <p>
 * 总的来说时为了解决精度兼容问题
 */
@Data
public class CurrentRefundPriceDTO {


    @ApiModelProperty(value = "退还金额")
    private Double sellerRefundPrice = 0D;
    @ApiModelProperty(value = "供应商退还金额")
    private Double supplierRefundPrice = 0D;
    @ApiModelProperty(value = "分销退还佣金")
    private Double distributionRefundPrice = 0D;
    @ApiModelProperty(value = "平台退还金额")
    private Double platformRefundPrice = 0D;

    /**
     * 获取当前批次退款金额
     */
    public Double getTotalRefundPrice() {
        return CurrencyUtil.add(this.sellerRefundPrice, this.supplierRefundPrice, this.distributionRefundPrice, this.platformRefundPrice);
    }
}
